.class public Lcom/vividsolutions/jts/algorithm/RobustDeterminant;
.super Ljava/lang/Object;
.source "RobustDeterminant.java"


# direct methods
.method public static signOfDet2x2(DDDD)I
    .locals 20

    move-wide/from16 v0, p0

    move-wide/from16 v2, p2

    move-wide/from16 v4, p4

    move-wide/from16 v6, p6

    const/4 v8, 0x0

    const/4 v9, -0x1

    const-wide/16 v10, 0x0

    const/4 v12, 0x1

    cmpl-double v13, v0, v10

    if-eqz v13, :cond_21

    cmpl-double v13, v6, v10

    if-nez v13, :cond_0

    goto/16 :goto_6

    :cond_0
    cmpl-double v13, v2, v10

    if-eqz v13, :cond_1d

    cmpl-double v13, v4, v10

    if-nez v13, :cond_1

    goto/16 :goto_5

    :cond_1
    cmpg-double v13, v10, v2

    if-gez v13, :cond_4

    cmpg-double v13, v10, v6

    if-gez v13, :cond_2

    cmpg-double v13, v2, v6

    if-gtz v13, :cond_8

    goto :goto_1

    :cond_2
    neg-double v6, v6

    cmpg-double v13, v2, v6

    if-gtz v13, :cond_3

    neg-double v4, v4

    goto :goto_3

    :cond_3
    neg-double v4, v4

    goto :goto_0

    :cond_4
    cmpg-double v13, v10, v6

    if-gez v13, :cond_6

    neg-double v2, v2

    cmpg-double v13, v2, v6

    if-gtz v13, :cond_5

    neg-double v0, v0

    goto :goto_3

    :cond_5
    neg-double v0, v0

    :goto_0
    const/4 v9, 0x1

    goto :goto_2

    :cond_6
    cmpl-double v13, v2, v6

    if-ltz v13, :cond_7

    neg-double v0, v0

    neg-double v2, v2

    neg-double v4, v4

    neg-double v6, v6

    :goto_1
    const/4 v9, 0x1

    goto :goto_3

    :cond_7
    neg-double v0, v0

    neg-double v4, v4

    neg-double v2, v2

    neg-double v6, v6

    :cond_8
    :goto_2
    move-wide/from16 v16, v2

    move-wide v2, v6

    move-wide/from16 v6, v16

    move-wide/from16 v18, v0

    move-wide v0, v4

    move-wide/from16 v4, v18

    :goto_3
    cmpg-double v12, v10, v0

    if-gez v12, :cond_a

    cmpg-double v12, v10, v4

    if-gez v12, :cond_9

    cmpg-double v12, v0, v4

    if-gtz v12, :cond_9

    goto :goto_4

    :cond_9
    return v9

    :cond_a
    cmpg-double v12, v10, v4

    if-gez v12, :cond_b

    neg-int v0, v9

    return v0

    :cond_b
    cmpl-double v12, v0, v4

    if-ltz v12, :cond_1c

    neg-int v9, v9

    neg-double v0, v0

    neg-double v4, v4

    :cond_c
    :goto_4
    div-double v12, v4, v0

    .line 238
    invoke-static {v12, v13}, Ljava/lang/Math;->floor(D)D

    move-result-wide v12

    mul-double v14, v12, v0

    sub-double/2addr v4, v14

    mul-double v12, v12, v2

    sub-double/2addr v6, v12

    cmpg-double v12, v6, v10

    if-gez v12, :cond_d

    neg-int v0, v9

    return v0

    :cond_d
    cmpl-double v12, v6, v2

    if-lez v12, :cond_e

    return v9

    :cond_e
    add-double v12, v4, v4

    cmpl-double v14, v0, v12

    if-lez v14, :cond_f

    add-double v12, v6, v6

    cmpg-double v14, v2, v12

    if-gez v14, :cond_11

    return v9

    :cond_f
    add-double v12, v6, v6

    cmpl-double v14, v2, v12

    if-lez v14, :cond_10

    neg-int v0, v9

    return v0

    :cond_10
    sub-double v4, v0, v4

    sub-double v6, v2, v6

    neg-int v9, v9

    :cond_11
    cmpl-double v12, v6, v10

    if-nez v12, :cond_13

    cmpl-double v0, v4, v10

    if-nez v0, :cond_12

    return v8

    :cond_12
    neg-int v0, v9

    return v0

    :cond_13
    cmpl-double v12, v4, v10

    if-nez v12, :cond_14

    return v9

    :cond_14
    div-double v12, v0, v4

    .line 285
    invoke-static {v12, v13}, Ljava/lang/Math;->floor(D)D

    move-result-wide v12

    mul-double v14, v12, v4

    sub-double/2addr v0, v14

    mul-double v12, v12, v6

    sub-double/2addr v2, v12

    cmpg-double v12, v2, v10

    if-gez v12, :cond_15

    return v9

    :cond_15
    cmpl-double v12, v2, v6

    if-lez v12, :cond_16

    neg-int v0, v9

    return v0

    :cond_16
    add-double v12, v0, v0

    cmpl-double v14, v4, v12

    if-lez v14, :cond_17

    add-double v12, v2, v2

    cmpg-double v14, v6, v12

    if-gez v14, :cond_19

    neg-int v0, v9

    return v0

    :cond_17
    add-double v12, v2, v2

    cmpl-double v14, v6, v12

    if-lez v14, :cond_18

    return v9

    :cond_18
    sub-double v0, v4, v0

    sub-double v2, v6, v2

    neg-int v9, v9

    :cond_19
    cmpl-double v12, v2, v10

    if-nez v12, :cond_1b

    cmpl-double v2, v0, v10

    if-nez v2, :cond_1a

    return v8

    :cond_1a
    return v9

    :cond_1b
    cmpl-double v12, v0, v10

    if-nez v12, :cond_c

    neg-int v0, v9

    return v0

    :cond_1c
    neg-int v0, v9

    return v0

    :cond_1d
    :goto_5
    cmpl-double v2, v6, v10

    if-lez v2, :cond_1f

    cmpl-double v2, v0, v10

    if-lez v2, :cond_1e

    return v12

    :cond_1e
    return v9

    :cond_1f
    cmpl-double v2, v0, v10

    if-lez v2, :cond_20

    return v9

    :cond_20
    return v12

    :cond_21
    :goto_6
    cmpl-double v0, v2, v10

    if-eqz v0, :cond_26

    cmpl-double v0, v4, v10

    if-nez v0, :cond_22

    goto :goto_7

    :cond_22
    cmpl-double v0, v2, v10

    if-lez v0, :cond_24

    cmpl-double v0, v4, v10

    if-lez v0, :cond_23

    return v9

    :cond_23
    return v12

    :cond_24
    cmpl-double v0, v4, v10

    if-lez v0, :cond_25

    return v12

    :cond_25
    return v9

    :cond_26
    :goto_7
    return v8
.end method
